Freeform annotations are ink-based strokes, gestures, or handwritings of any shape that a user can input to a computing device using an associated input device, which can be but is not limited to, a mouse, a keyboard, and a stylus. Here a computing device can be but is not limited to, a PDA, a Tablet PC, a Pocket PC, a cell phone, an electronic messaging device, a Java-enabled device, a laptop or desktop PC, a workstation, and a mainframe computer. The processing unit inside the computing device can be a CPU, an embedded CPU, or a Micro Control Unit (MCU). Freeform annotation systems have been pursued since, unlike text-based annotation systems that do not support natural annotation as on paper, they provide a natural way to annotate digital documents, which is especially important for portable computing devices such as: PDA, Pocket PC or cell phone. A digital document can be stored either in memory or on a persistent storage (e.g., hard drive) associated with the computing device, and it can include at least one of: a text file, an image, a figure, a drawing, a graph, a picture, and a video clip.
Previous approaches to freeform annotation systems suffer from two major drawbacks: First, they often limit the kind of annotations that can be recognized and put restrictions on how the annotations can input in order to be recognized correctly, making the annotations not truly “freeform”. For example, links between portions of a displayed digital document are often not recognized; Secondly, they often rely on heuristic techniques to automatically group individual annotations into various categories. Due to their heuristic nature, these techniques do not work all the time.
The situation is further complicated when the digital document is viewed on different display devices or when users select different font sizes, requiring the annotations on the document to be repositioned or resized according to the display properties of a specific display device in order to be rendered properly. Here a display device can be a screen, which can be a LCD or a CRT monitor having a display area of certain width and height measured in terms of number of pixels; A display property can be associated with one of: a text font, a font size, a text color, a display width, height, and resolution of the display device. Text-based annotation systems can provide an obvious place or a special text box to input annotations, making rendering of the annotations a straightforward task. Freeform annotation systems, however, require that the annotations to be linked to a portion of the digital document for proper rendering. In addition, certain freeform annotations, such as comments, have to be sized down from handwriting sizes in order to fit within the often limited blank area available on a display device, such as the screen of a PDA.